#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>


//int main()
//{
//    int n = 0;
//    while (scanf("%d", &n) != EOF)
//    {
//        if (n >= 140)
//            printf("Genius");
//    }
//    return 0;
//}
//void reverse(char *left,char *right){
//	while (left < right) {
//		char tep = *left;
//		*left = *right;
//		*right = tep;
//		left++;
//		right--;
//	}
//
//
//}
//int main() {
//	char a[100] = { 0 };
//	gets(a);
//	int sz = strlen(a);
//	reverse(a, a+sz-1);
//	int i = 0;
//	char* p = a;
//	for (i = 0; i <= sz; i++) {
//		if (a[i] == '\0' || a[i] == ' ') {
//			reverse(p,a+i-1);
//			p=a+i+1;
//		}
//
//	}
//	printf("%s", a);
//}
int main() {
	int a = 0;
	int b = 0;
	scanf("%d %d", &a ,& b);
	int m = a;
	int n = b;
	int c = 0;
	while (a % b) {
		c = a % b;
		a = b;
		b = c;
	}
	c = b;
	int d = m * n / c;
	printf("%d\n", a);
	printf("%d\n", b);
	printf("%d\n", c);
	printf("%d\n", d);
	/*int d = 0;
	d = a * b / c;
	printf("%d\n", c);
	printf("%d\n", d);*/
}